export { };

// 1、正确搭建ts运行环境
// 2、正确配置tsconfig配置文件
// 3、实现ts文件转换成js文件
// 4、正确定义ts类型，不能使用any
// 5、正确配置eslint规范

// 6、实现 countConsistentStrings方法，统计一致字符串的数目，并返回个数（给你一个由不同字符组成的字符串allowed和一个字符串数组words。如果一个字符串的每一个字符都在 allowed中，就称这个字符串是 一致字符串 ）

// 8、正确定义函数
// 9、正确定义函数参数类型
// 10、正确定义返回值类型
const countConsistentStrings = (allowed: string, words: string[]): number => {
	// 7、正确处理实现代码逻辑
	function someString(str1: string, str2: string): boolean {
		return str1.split('').every(v => str2.includes(v)) && str2.split('').every(v => str1.includes(v))
	}

	return words.reduce((p, n) => {
		// 检车一致字符串
		const result = someString(allowed, n)
		// 是 累加结果
		return result ? p + 1 : p
	}, 0)
}

const result1 = countConsistentStrings("ab", ["ad", "bd", "aaab", "baa", "badab"])
const result2 = countConsistentStrings("abc", ["ad", "bd", "aaab", "baa", "badab"])
const result3 = countConsistentStrings("abd", ["ad", "bd", "aaab", "baa", "badab"])
const result4 = countConsistentStrings("abdd", ["ad", "bd", "aaab", "baa", "badab"])
const result5 = countConsistentStrings("abbb", ["ad", "bd", "aaab", "baa", "badab"])

console.log(result1, result2, result3, result4, result5)
//            2         0       1         1         2



// 11、正确返回结果
// 12、编写5种不同的测试用例测试
// 录制效果视频演示效果




// 测试用例示范
// 解释：输入：allowed = "ab", words = ["ad","bd","aaab","baa","badab"]
// 输出：2
// 解释：字符串 "aaab" 和 "baa" 都是一致字符串，因为它们只包含字符 'a' 和 'b' 